package co.edu.usbcali.sap.presentation.businessDelegate;

import co.edu.usbcali.sap.modelo.ActaSeguimientoProyectoGrado;
import co.edu.usbcali.sap.modelo.AprobacionAnteproyecto;
import co.edu.usbcali.sap.modelo.Comite;
import co.edu.usbcali.sap.modelo.ComiteRolper;
import co.edu.usbcali.sap.modelo.ComiteRolperId;
import co.edu.usbcali.sap.modelo.DocumentosProyecto;
import co.edu.usbcali.sap.modelo.Estado;
import co.edu.usbcali.sap.modelo.FaseProyecto;
import co.edu.usbcali.sap.modelo.LineaInvestigacion;
import co.edu.usbcali.sap.modelo.PalabraClave;
import co.edu.usbcali.sap.modelo.Persona;
import co.edu.usbcali.sap.modelo.Proyecto;
import co.edu.usbcali.sap.modelo.ProyectoLinea;
import co.edu.usbcali.sap.modelo.ProyectoLineaId;
import co.edu.usbcali.sap.modelo.ProyectoPalabraClave;
import co.edu.usbcali.sap.modelo.ProyectoPalabraClaveId;
import co.edu.usbcali.sap.modelo.ProyectoPersonaRol;
import co.edu.usbcali.sap.modelo.ProyectoPersonaRolId;
import co.edu.usbcali.sap.modelo.ReciboProyectoGrado;
import co.edu.usbcali.sap.modelo.RevisionProyectoGrado;
import co.edu.usbcali.sap.modelo.Rol;
import co.edu.usbcali.sap.modelo.TipoDocumento;
import co.edu.usbcali.sap.modelo.TipoProyecto;
import co.edu.usbcali.sap.modelo.control.ActaSeguimientoProyectoGradoLogic;
import co.edu.usbcali.sap.modelo.control.AprobacionAnteproyectoLogic;
import co.edu.usbcali.sap.modelo.control.ComiteLogic;
import co.edu.usbcali.sap.modelo.control.ComiteRolperLogic;
import co.edu.usbcali.sap.modelo.control.DocumentosProyectoLogic;
import co.edu.usbcali.sap.modelo.control.EstadoLogic;
import co.edu.usbcali.sap.modelo.control.FaseProyectoLogic;
import co.edu.usbcali.sap.modelo.control.IActaSeguimientoProyectoGradoLogic;
import co.edu.usbcali.sap.modelo.control.IAprobacionAnteproyectoLogic;
import co.edu.usbcali.sap.modelo.control.IComiteLogic;
import co.edu.usbcali.sap.modelo.control.IComiteRolperLogic;
import co.edu.usbcali.sap.modelo.control.IDocumentosProyectoLogic;
import co.edu.usbcali.sap.modelo.control.IEstadoLogic;
import co.edu.usbcali.sap.modelo.control.IFaseProyectoLogic;
import co.edu.usbcali.sap.modelo.control.ILineaInvestigacionLogic;
import co.edu.usbcali.sap.modelo.control.IPalabraClaveLogic;
import co.edu.usbcali.sap.modelo.control.IPersonaLogic;
import co.edu.usbcali.sap.modelo.control.IProyectoLineaLogic;
import co.edu.usbcali.sap.modelo.control.IProyectoLogic;
import co.edu.usbcali.sap.modelo.control.IProyectoPalabraClaveLogic;
import co.edu.usbcali.sap.modelo.control.IProyectoPersonaRolLogic;
import co.edu.usbcali.sap.modelo.control.IReciboProyectoGradoLogic;
import co.edu.usbcali.sap.modelo.control.IRevisionProyectoGradoLogic;
import co.edu.usbcali.sap.modelo.control.IRolLogic;
import co.edu.usbcali.sap.modelo.control.ITipoDocumentoLogic;
import co.edu.usbcali.sap.modelo.control.ITipoProyectoLogic;
import co.edu.usbcali.sap.modelo.control.LineaInvestigacionLogic;
import co.edu.usbcali.sap.modelo.control.PalabraClaveLogic;
import co.edu.usbcali.sap.modelo.control.PersonaLogic;
import co.edu.usbcali.sap.modelo.control.ProyectoLineaLogic;
import co.edu.usbcali.sap.modelo.control.ProyectoLogic;
import co.edu.usbcali.sap.modelo.control.ProyectoPalabraClaveLogic;
import co.edu.usbcali.sap.modelo.control.ProyectoPersonaRolLogic;
import co.edu.usbcali.sap.modelo.control.ReciboProyectoGradoLogic;
import co.edu.usbcali.sap.modelo.control.RevisionProyectoGradoLogic;
import co.edu.usbcali.sap.modelo.control.RolLogic;
import co.edu.usbcali.sap.modelo.control.TipoDocumentoLogic;
import co.edu.usbcali.sap.modelo.control.TipoProyectoLogic;
import co.edu.usbcali.sap.modelo.dto.LineaInvestigacionDTO;
import co.edu.usbcali.sap.modelo.dto.PersonaDTO;

import java.io.File;
import java.math.BigDecimal;

import java.util.Date;
import java.util.List;
import java.util.Set;

/**
 * Use a Business Delegate to reduce coupling between presentation-tier clients
 * and business services. The Business Delegate hides the underlying
 * implementation details of the business service, such as lookup and access
 * details of the EJB architecture.
 * 
 * The Business Delegate acts as a client-side business abstraction; it provides
 * an abstraction for, and thus hides, the implementation of the business
 * services. Using a Business Delegate reduces the coupling between
 * presentation-tier clients and the system's business services. Depending on
 * the implementation strategy, the Business Delegate may shield clients from
 * possible volatility in the implementation of the business service API.
 * Potentially, this reduces the number of changes that must be made to the
 * presentation-tier client code when the business service API or its underlying
 * implementation changes.
 * 
 * However, interface methods in the Business Delegate may still require
 * modification if the underlying business service API changes. Admittedly,
 * though, it is more likely that changes will be made to the business service
 * rather than to the Business Delegate.
 * 
 * Often, developers are skeptical when a design goal such as abstracting the
 * business layer causes additional upfront work in return for future gains.
 * However, using this pattern or its strategies results in only a small amount
 * of additional upfront work and provides considerable benefits. The main
 * benefit is hiding the details of the underlying service. For example, the
 * client can become transparent to naming and lookup services. The Business
 * Delegate also handles the exceptions from the business services, such as
 * java.rmi.Remote exceptions, Java Messages Service (JMS) exceptions and so on.
 * The Business Delegate may intercept such service level exceptions and
 * generate application level exceptions instead. Application level exceptions
 * are easier to handle by the clients, and may be user friendly. The Business
 * Delegate may also transparently perform any retry or recovery operations
 * necessary in the event of a service failure without exposing the client to
 * the problem until it is determined that the problem is not resolvable. These
 * gains present a compelling reason to use the pattern.
 * 
 * Another benefit is that the delegate may cache results and references to
 * remote business services. Caching can significantly improve performance,
 * because it limits unnecessary and potentially costly round trips over the
 * network.
 * 
 * A Business Delegate uses a component called the Lookup Service. The Lookup
 * Service is responsible for hiding the underlying implementation details of
 * the business service lookup code. The Lookup Service may be written as part
 * of the Delegate, but we recommend that it be implemented as a separate
 * component, as outlined in the Service Locator pattern (See "Service Locator"
 * on page 368.)
 * 
 * When the Business Delegate is used with a Session Facade, typically there is
 * a one-to-one relationship between the two. This one-to-one relationship
 * exists because logic that might have been encapsulated in a Business Delegate
 * relating to its interaction with multiple business services (creating a
 * one-to-many relationship) will often be factored back into a Session Facade.
 * 
 * Finally, it should be noted that this pattern could be used to reduce
 * coupling between other tiers, not simply the presentation and the business
 * tiers.
 * 
 * @author Zathura Code Generator http://code.google.com/p/zathura
 * 
 */
public class BusinessDelegatorView {
	private BusinessDelegatorView() {
	}

	public static List<ActaSeguimientoProyectoGrado> getActaSeguimientoProyectoGrado()
			throws Exception {
		IActaSeguimientoProyectoGradoLogic actaSeguimientoProyectoGradoLogic = new ActaSeguimientoProyectoGradoLogic();

		return actaSeguimientoProyectoGradoLogic
				.getActaSeguimientoProyectoGrado();
	}

	public static void saveActaSeguimientoProyectoGrado(Integer segproCodigo,
			String segproCompromisos, String segproCorrecciones,
			Date segproFecha, String segproObservaciones,
			Integer segproPorcentaje, String segproTemaReunion,
			Integer docproCodigo_DocumentosProyecto, Integer estCodigo_Estado,
			Integer proCodigo_Proyecto) throws Exception {
		IActaSeguimientoProyectoGradoLogic actaSeguimientoProyectoGradoLogic = new ActaSeguimientoProyectoGradoLogic();
		actaSeguimientoProyectoGradoLogic.saveActaSeguimientoProyectoGrado(
				segproCodigo, segproCompromisos, segproCorrecciones,
				segproFecha, segproObservaciones, segproPorcentaje,
				segproTemaReunion, docproCodigo_DocumentosProyecto,
				estCodigo_Estado, proCodigo_Proyecto);
	}

	public static void SaveDocuments(List<File> f,String cod) throws Exception {
		IDocumentosProyectoLogic logic = new DocumentosProyectoLogic();
		logic.SaveDocuments(f,cod);
	}

	public static void deleteActaSeguimientoProyectoGrado(Integer segproCodigo)
			throws Exception {
		IActaSeguimientoProyectoGradoLogic actaSeguimientoProyectoGradoLogic = new ActaSeguimientoProyectoGradoLogic();
		actaSeguimientoProyectoGradoLogic
				.deleteActaSeguimientoProyectoGrado(segproCodigo);
	}

	public static void updateActaSeguimientoProyectoGrado(Integer segproCodigo,
			String segproCompromisos, String segproCorrecciones,
			Date segproFecha, String segproObservaciones,
			Integer segproPorcentaje, String segproTemaReunion,
			Integer docproCodigo_DocumentosProyecto, Integer estCodigo_Estado,
			Integer proCodigo_Proyecto) throws Exception {
		IActaSeguimientoProyectoGradoLogic actaSeguimientoProyectoGradoLogic = new ActaSeguimientoProyectoGradoLogic();
		actaSeguimientoProyectoGradoLogic.updateActaSeguimientoProyectoGrado(
				segproCodigo, segproCompromisos, segproCorrecciones,
				segproFecha, segproObservaciones, segproPorcentaje,
				segproTemaReunion, docproCodigo_DocumentosProyecto,
				estCodigo_Estado, proCodigo_Proyecto);
	}

	public static ActaSeguimientoProyectoGrado getActaSeguimientoProyectoGrado(
			Integer segproCodigo) throws Exception {
		IActaSeguimientoProyectoGradoLogic actaSeguimientoProyectoGradoLogic = new ActaSeguimientoProyectoGradoLogic();
		ActaSeguimientoProyectoGrado actaSeguimientoProyectoGrado = null;

		try {
			actaSeguimientoProyectoGrado = actaSeguimientoProyectoGradoLogic
					.getActaSeguimientoProyectoGrado(segproCodigo);
		} catch (Exception e) {
			throw e;
		}

		return actaSeguimientoProyectoGrado;
	}

	public static List<ActaSeguimientoProyectoGrado> findByCriteriaInActaSeguimientoProyectoGrado(
			Object[] variables, Object[] variablesBetween,
			Object[] variablesBetweenDates) throws Exception {
		IActaSeguimientoProyectoGradoLogic actaSeguimientoProyectoGradoLogic = new ActaSeguimientoProyectoGradoLogic();

		return actaSeguimientoProyectoGradoLogic.findByCriteria(variables,
				variablesBetween, variablesBetweenDates);
	}

	public static List<ActaSeguimientoProyectoGrado> findPageActaSeguimientoProyectoGrado(
			String sortColumnName, boolean sortAscending, int startRow,
			int maxResults) throws Exception {
		IActaSeguimientoProyectoGradoLogic actaSeguimientoProyectoGradoLogic = new ActaSeguimientoProyectoGradoLogic();

		return actaSeguimientoProyectoGradoLogic
				.findPageActaSeguimientoProyectoGrado(sortColumnName,
						sortAscending, startRow, maxResults);
	}

	public static Long findTotalNumberActaSeguimientoProyectoGrado()
			throws Exception {
		IActaSeguimientoProyectoGradoLogic actaSeguimientoProyectoGradoLogic = new ActaSeguimientoProyectoGradoLogic();

		return actaSeguimientoProyectoGradoLogic
				.findTotalNumberActaSeguimientoProyectoGrado();
	}

	public static List<AprobacionAnteproyecto> getAprobacionAnteproyecto()
			throws Exception {
		IAprobacionAnteproyectoLogic aprobacionAnteproyectoLogic = new AprobacionAnteproyectoLogic();

		return aprobacionAnteproyectoLogic.getAprobacionAnteproyecto();
	}

	public static void saveAprobacionAnteproyecto(Integer aprantCodigo,
			String aprantEstArte, Date aprantFecha, String aprantMetodo,
			String aprantObjetivos, String aprantObservaciones,
			String aprantReviBibliografia,
			Integer docproCodigo_DocumentosProyecto, Integer proCodigo_Proyecto)
			throws Exception {
		IAprobacionAnteproyectoLogic aprobacionAnteproyectoLogic = new AprobacionAnteproyectoLogic();
		aprobacionAnteproyectoLogic.saveAprobacionAnteproyecto(aprantCodigo,
				aprantEstArte, aprantFecha, aprantMetodo, aprantObjetivos,
				aprantObservaciones, aprantReviBibliografia,
				docproCodigo_DocumentosProyecto, proCodigo_Proyecto);
	}

	public static void deleteAprobacionAnteproyecto(Integer aprantCodigo)
			throws Exception {
		IAprobacionAnteproyectoLogic aprobacionAnteproyectoLogic = new AprobacionAnteproyectoLogic();
		aprobacionAnteproyectoLogic.deleteAprobacionAnteproyecto(aprantCodigo);
	}

	public static void updateAprobacionAnteproyecto(Integer aprantCodigo,
			String aprantEstArte, Date aprantFecha, String aprantMetodo,
			String aprantObjetivos, String aprantObservaciones,
			String aprantReviBibliografia,
			Integer docproCodigo_DocumentosProyecto, Integer proCodigo_Proyecto)
			throws Exception {
		IAprobacionAnteproyectoLogic aprobacionAnteproyectoLogic = new AprobacionAnteproyectoLogic();
		aprobacionAnteproyectoLogic.updateAprobacionAnteproyecto(aprantCodigo,
				aprantEstArte, aprantFecha, aprantMetodo, aprantObjetivos,
				aprantObservaciones, aprantReviBibliografia,
				docproCodigo_DocumentosProyecto, proCodigo_Proyecto);
	}

	public static AprobacionAnteproyecto getAprobacionAnteproyecto(
			Integer aprantCodigo) throws Exception {
		IAprobacionAnteproyectoLogic aprobacionAnteproyectoLogic = new AprobacionAnteproyectoLogic();
		AprobacionAnteproyecto aprobacionAnteproyecto = null;

		try {
			aprobacionAnteproyecto = aprobacionAnteproyectoLogic
					.getAprobacionAnteproyecto(aprantCodigo);
		} catch (Exception e) {
			throw e;
		}

		return aprobacionAnteproyecto;
	}

	public static List<AprobacionAnteproyecto> findByCriteriaInAprobacionAnteproyecto(
			Object[] variables, Object[] variablesBetween,
			Object[] variablesBetweenDates) throws Exception {
		IAprobacionAnteproyectoLogic aprobacionAnteproyectoLogic = new AprobacionAnteproyectoLogic();

		return aprobacionAnteproyectoLogic.findByCriteria(variables,
				variablesBetween, variablesBetweenDates);
	}

	public static List<AprobacionAnteproyecto> findPageAprobacionAnteproyecto(
			String sortColumnName, boolean sortAscending, int startRow,
			int maxResults) throws Exception {
		IAprobacionAnteproyectoLogic aprobacionAnteproyectoLogic = new AprobacionAnteproyectoLogic();

		return aprobacionAnteproyectoLogic.findPageAprobacionAnteproyecto(
				sortColumnName, sortAscending, startRow, maxResults);
	}

	public static Long findTotalNumberAprobacionAnteproyecto() throws Exception {
		IAprobacionAnteproyectoLogic aprobacionAnteproyectoLogic = new AprobacionAnteproyectoLogic();

		return aprobacionAnteproyectoLogic
				.findTotalNumberAprobacionAnteproyecto();
	}

	public static List<Comite> getComite() throws Exception {
		IComiteLogic comiteLogic = new ComiteLogic();

		return comiteLogic.getComite();
	}

	public static void saveComite(Integer comCodigo, Date comFechacreacion,
			Date comFechafinalizacion) throws Exception {
		IComiteLogic comiteLogic = new ComiteLogic();
		comiteLogic.saveComite(comCodigo, comFechacreacion,
				comFechafinalizacion);
	}

	public static void deleteComite(Integer comCodigo) throws Exception {
		IComiteLogic comiteLogic = new ComiteLogic();
		comiteLogic.deleteComite(comCodigo);
	}

	public static void updateComite(Integer comCodigo, Date comFechacreacion,
			Date comFechafinalizacion) throws Exception {
		IComiteLogic comiteLogic = new ComiteLogic();
		comiteLogic.updateComite(comCodigo, comFechacreacion,
				comFechafinalizacion);
	}

	public static Comite getComite(Integer comCodigo) throws Exception {
		IComiteLogic comiteLogic = new ComiteLogic();
		Comite comite = null;

		try {
			comite = comiteLogic.getComite(comCodigo);
		} catch (Exception e) {
			throw e;
		}

		return comite;
	}

	public static List<Comite> findByCriteriaInComite(Object[] variables,
			Object[] variablesBetween, Object[] variablesBetweenDates)
			throws Exception {
		IComiteLogic comiteLogic = new ComiteLogic();

		return comiteLogic.findByCriteria(variables, variablesBetween,
				variablesBetweenDates);
	}

	public static List<Comite> findPageComite(String sortColumnName,
			boolean sortAscending, int startRow, int maxResults)
			throws Exception {
		IComiteLogic comiteLogic = new ComiteLogic();

		return comiteLogic.findPageComite(sortColumnName, sortAscending,
				startRow, maxResults);
	}

	public static Long findTotalNumberComite() throws Exception {
		IComiteLogic comiteLogic = new ComiteLogic();

		return comiteLogic.findTotalNumberComite();
	}

	public static List<ComiteRolper> getComiteRolper() throws Exception {
		IComiteRolperLogic comiteRolperLogic = new ComiteRolperLogic();

		return comiteRolperLogic.getComiteRolper();
	}

	public static void saveComiteRolper(Integer comCodigo, Integer perCodigo,
			Date comperFecha, Integer comCodigo_Comite,
			Integer perCodigo_Persona) throws Exception {
		IComiteRolperLogic comiteRolperLogic = new ComiteRolperLogic();
		comiteRolperLogic.saveComiteRolper(comCodigo, perCodigo, comperFecha,
				comCodigo_Comite, perCodigo_Persona);
	}

	public static void deleteComiteRolper(Integer comCodigo, Integer perCodigo)
			throws Exception {
		IComiteRolperLogic comiteRolperLogic = new ComiteRolperLogic();
		comiteRolperLogic.deleteComiteRolper(comCodigo, perCodigo);
	}

	public static void updateComiteRolper(Integer comCodigo, Integer perCodigo,
			Date comperFecha, Integer comCodigo_Comite,
			Integer perCodigo_Persona) throws Exception {
		IComiteRolperLogic comiteRolperLogic = new ComiteRolperLogic();
		comiteRolperLogic.updateComiteRolper(comCodigo, perCodigo, comperFecha,
				comCodigo_Comite, perCodigo_Persona);
	}

	public static ComiteRolper getComiteRolper(ComiteRolperId id)
			throws Exception {
		IComiteRolperLogic comiteRolperLogic = new ComiteRolperLogic();
		ComiteRolper comiteRolper = null;

		try {
			comiteRolper = comiteRolperLogic.getComiteRolper(id);
		} catch (Exception e) {
			throw e;
		}

		return comiteRolper;
	}

	public static List<ComiteRolper> findByCriteriaInComiteRolper(
			Object[] variables, Object[] variablesBetween,
			Object[] variablesBetweenDates) throws Exception {
		IComiteRolperLogic comiteRolperLogic = new ComiteRolperLogic();

		return comiteRolperLogic.findByCriteria(variables, variablesBetween,
				variablesBetweenDates);
	}

	public static List<ComiteRolper> findPageComiteRolper(
			String sortColumnName, boolean sortAscending, int startRow,
			int maxResults) throws Exception {
		IComiteRolperLogic comiteRolperLogic = new ComiteRolperLogic();

		return comiteRolperLogic.findPageComiteRolper(sortColumnName,
				sortAscending, startRow, maxResults);
	}

	public static Long findTotalNumberComiteRolper() throws Exception {
		IComiteRolperLogic comiteRolperLogic = new ComiteRolperLogic();

		return comiteRolperLogic.findTotalNumberComiteRolper();
	}

	public static List<DocumentosProyecto> getDocumentosProyecto()
			throws Exception {
		IDocumentosProyectoLogic documentosProyectoLogic = new DocumentosProyectoLogic();

		return documentosProyectoLogic.getDocumentosProyecto();
	}

	public static void saveDocumentosProyecto(Long docproArchivo,
			Integer docproCodigo, String docproFormato,
			Integer proCodigo_Proyecto, Integer tipdocCodigo_TipoDocumento)
			throws Exception {
		IDocumentosProyectoLogic documentosProyectoLogic = new DocumentosProyectoLogic();
		documentosProyectoLogic.saveDocumentosProyecto(docproArchivo,
				docproCodigo, docproFormato, proCodigo_Proyecto,
				tipdocCodigo_TipoDocumento);
	}

	public static void deleteDocumentosProyecto(Integer docproCodigo)
			throws Exception {
		IDocumentosProyectoLogic documentosProyectoLogic = new DocumentosProyectoLogic();
		documentosProyectoLogic.deleteDocumentosProyecto(docproCodigo);
	}

	public static void updateDocumentosProyecto(Long docproArchivo,
			Integer docproCodigo, String docproFormato,
			Integer proCodigo_Proyecto, Integer tipdocCodigo_TipoDocumento)
			throws Exception {
		IDocumentosProyectoLogic documentosProyectoLogic = new DocumentosProyectoLogic();
		documentosProyectoLogic.updateDocumentosProyecto(docproArchivo,
				docproCodigo, docproFormato, proCodigo_Proyecto,
				tipdocCodigo_TipoDocumento);
	}

	public static DocumentosProyecto getDocumentosProyecto(Integer docproCodigo)
			throws Exception {
		IDocumentosProyectoLogic documentosProyectoLogic = new DocumentosProyectoLogic();
		DocumentosProyecto documentosProyecto = null;

		try {
			documentosProyecto = documentosProyectoLogic
					.getDocumentosProyecto(docproCodigo);
		} catch (Exception e) {
			throw e;
		}

		return documentosProyecto;
	}

	public static List<DocumentosProyecto> findByCriteriaInDocumentosProyecto(
			Object[] variables, Object[] variablesBetween,
			Object[] variablesBetweenDates) throws Exception {
		IDocumentosProyectoLogic documentosProyectoLogic = new DocumentosProyectoLogic();

		return documentosProyectoLogic.findByCriteria(variables,
				variablesBetween, variablesBetweenDates);
	}

	public static List<DocumentosProyecto> findPageDocumentosProyecto(
			String sortColumnName, boolean sortAscending, int startRow,
			int maxResults) throws Exception {
		IDocumentosProyectoLogic documentosProyectoLogic = new DocumentosProyectoLogic();

		return documentosProyectoLogic.findPageDocumentosProyecto(
				sortColumnName, sortAscending, startRow, maxResults);
	}

	public static Long findTotalNumberDocumentosProyecto() throws Exception {
		IDocumentosProyectoLogic documentosProyectoLogic = new DocumentosProyectoLogic();

		return documentosProyectoLogic.findTotalNumberDocumentosProyecto();
	}

	public static List<Estado> getEstado() throws Exception {
		IEstadoLogic estadoLogic = new EstadoLogic();

		return estadoLogic.getEstado();
	}

	public static void saveEstado(Integer estCodigo, String estDescripcion,
			String estNombre) throws Exception {
		IEstadoLogic estadoLogic = new EstadoLogic();
		estadoLogic.saveEstado(estCodigo, estDescripcion, estNombre);
	}

	public static void deleteEstado(Integer estCodigo) throws Exception {
		IEstadoLogic estadoLogic = new EstadoLogic();
		estadoLogic.deleteEstado(estCodigo);
	}

	public static void updateEstado(Integer estCodigo, String estDescripcion,
			String estNombre) throws Exception {
		IEstadoLogic estadoLogic = new EstadoLogic();
		estadoLogic.updateEstado(estCodigo, estDescripcion, estNombre);
	}

	public static Estado getEstado(Integer estCodigo) throws Exception {
		IEstadoLogic estadoLogic = new EstadoLogic();
		Estado estado = null;

		try {
			estado = estadoLogic.getEstado(estCodigo);
		} catch (Exception e) {
			throw e;
		}

		return estado;
	}

	public static List<Estado> getAllEstado() throws Exception {
		IEstadoLogic estadoLogic = new EstadoLogic();
		return estadoLogic.getAllEstado();

	}

	public static List<Estado> findByCriteriaInEstado(Object[] variables,
			Object[] variablesBetween, Object[] variablesBetweenDates)
			throws Exception {
		IEstadoLogic estadoLogic = new EstadoLogic();

		return estadoLogic.findByCriteria(variables, variablesBetween,
				variablesBetweenDates);
	}

	public static List<Estado> findPageEstado(String sortColumnName,
			boolean sortAscending, int startRow, int maxResults)
			throws Exception {
		IEstadoLogic estadoLogic = new EstadoLogic();

		return estadoLogic.findPageEstado(sortColumnName, sortAscending,
				startRow, maxResults);
	}

	public static Long findTotalNumberEstado() throws Exception {
		IEstadoLogic estadoLogic = new EstadoLogic();

		return estadoLogic.findTotalNumberEstado();
	}

	public static List<FaseProyecto> getFaseProyecto() throws Exception {
		IFaseProyectoLogic faseProyectoLogic = new FaseProyectoLogic();

		return faseProyectoLogic.getFaseProyecto();
	}

	public static void saveFaseProyecto(Integer fasproCodigo,
			String fasproDescripcion, String fasproNombre) throws Exception {
		IFaseProyectoLogic faseProyectoLogic = new FaseProyectoLogic();
		faseProyectoLogic.saveFaseProyecto(fasproCodigo, fasproDescripcion,
				fasproNombre);
	}

	public static void deleteFaseProyecto(Integer fasproCodigo)
			throws Exception {
		IFaseProyectoLogic faseProyectoLogic = new FaseProyectoLogic();
		faseProyectoLogic.deleteFaseProyecto(fasproCodigo);
	}

	public static void updateFaseProyecto(Integer fasproCodigo,
			String fasproDescripcion, String fasproNombre) throws Exception {
		IFaseProyectoLogic faseProyectoLogic = new FaseProyectoLogic();
		faseProyectoLogic.updateFaseProyecto(fasproCodigo, fasproDescripcion,
				fasproNombre);
	}

	public static FaseProyecto getFaseProyecto(Integer fasproCodigo)
			throws Exception {
		IFaseProyectoLogic faseProyectoLogic = new FaseProyectoLogic();
		FaseProyecto faseProyecto = null;

		try {
			faseProyecto = faseProyectoLogic.getFaseProyecto(fasproCodigo);
		} catch (Exception e) {
			throw e;
		}

		return faseProyecto;
	}

	public static List<FaseProyecto> findByCriteriaInFaseProyecto(
			Object[] variables, Object[] variablesBetween,
			Object[] variablesBetweenDates) throws Exception {
		IFaseProyectoLogic faseProyectoLogic = new FaseProyectoLogic();

		return faseProyectoLogic.findByCriteria(variables, variablesBetween,
				variablesBetweenDates);
	}

	public static List<FaseProyecto> getAllFases() throws Exception {
		IFaseProyectoLogic faseProyectoLogic = new FaseProyectoLogic();
		return faseProyectoLogic.getAllFases();

	}

	public static List<FaseProyecto> findPageFaseProyecto(
			String sortColumnName, boolean sortAscending, int startRow,
			int maxResults) throws Exception {
		IFaseProyectoLogic faseProyectoLogic = new FaseProyectoLogic();

		return faseProyectoLogic.findPageFaseProyecto(sortColumnName,
				sortAscending, startRow, maxResults);
	}

	public static Long findTotalNumberFaseProyecto() throws Exception {
		IFaseProyectoLogic faseProyectoLogic = new FaseProyectoLogic();

		return faseProyectoLogic.findTotalNumberFaseProyecto();
	}

	public static List<LineaInvestigacion> getLineaInvestigacion()
			throws Exception {
		ILineaInvestigacionLogic lineaInvestigacionLogic = new LineaInvestigacionLogic();

		return lineaInvestigacionLogic.getLineaInvestigacion();
	}

	public static void saveLineaInvestigacion(Integer lininCodigo,
			String lininDescripcion, String lininNombre) throws Exception {
		ILineaInvestigacionLogic lineaInvestigacionLogic = new LineaInvestigacionLogic();
		lineaInvestigacionLogic.saveLineaInvestigacion(lininCodigo,
				lininDescripcion, lininNombre);
	}

	public static void deleteLineaInvestigacion(Integer lininCodigo)
			throws Exception {
		ILineaInvestigacionLogic lineaInvestigacionLogic = new LineaInvestigacionLogic();
		lineaInvestigacionLogic.deleteLineaInvestigacion(lininCodigo);
	}

	public static void updateLineaInvestigacion(Integer lininCodigo,
			String lininDescripcion, String lininNombre) throws Exception {
		ILineaInvestigacionLogic lineaInvestigacionLogic = new LineaInvestigacionLogic();
		lineaInvestigacionLogic.updateLineaInvestigacion(lininCodigo,
				lininDescripcion, lininNombre);
	}

	public static LineaInvestigacion getLineaInvestigacion(Integer lininCodigo)
			throws Exception {
		ILineaInvestigacionLogic lineaInvestigacionLogic = new LineaInvestigacionLogic();
		LineaInvestigacion lineaInvestigacion = null;

		try {
			lineaInvestigacion = lineaInvestigacionLogic
					.getLineaInvestigacion(lininCodigo);
		} catch (Exception e) {
			throw e;
		}

		return lineaInvestigacion;
	}

	public static List<LineaInvestigacion> findByCriteriaInLineaInvestigacion(
			Object[] variables, Object[] variablesBetween,
			Object[] variablesBetweenDates) throws Exception {
		ILineaInvestigacionLogic lineaInvestigacionLogic = new LineaInvestigacionLogic();

		return lineaInvestigacionLogic.findByCriteria(variables,
				variablesBetween, variablesBetweenDates);
	}

	public static List<LineaInvestigacion> findPageLineaInvestigacion(
			String sortColumnName, boolean sortAscending, int startRow,
			int maxResults) throws Exception {
		ILineaInvestigacionLogic lineaInvestigacionLogic = new LineaInvestigacionLogic();

		return lineaInvestigacionLogic.findPageLineaInvestigacion(
				sortColumnName, sortAscending, startRow, maxResults);
	}

	public static Long findTotalNumberLineaInvestigacion() throws Exception {
		ILineaInvestigacionLogic lineaInvestigacionLogic = new LineaInvestigacionLogic();

		return lineaInvestigacionLogic.findTotalNumberLineaInvestigacion();
	}

	public static List<PalabraClave> getPalabraClave() throws Exception {
		IPalabraClaveLogic palabraClaveLogic = new PalabraClaveLogic();

		return palabraClaveLogic.getPalabraClave();
	}

	public static void savePalabraClave(Integer palclaCodigo,
			String palclaDescripcion, String palclaNombre) throws Exception {
		IPalabraClaveLogic palabraClaveLogic = new PalabraClaveLogic();
		palabraClaveLogic.savePalabraClave(palclaCodigo, palclaDescripcion,
				palclaNombre);
	}

	public static void deletePalabraClave(Integer palclaCodigo)
			throws Exception {
		IPalabraClaveLogic palabraClaveLogic = new PalabraClaveLogic();
		palabraClaveLogic.deletePalabraClave(palclaCodigo);
	}

	public static void updatePalabraClave(Integer palclaCodigo,
			String palclaDescripcion, String palclaNombre) throws Exception {
		IPalabraClaveLogic palabraClaveLogic = new PalabraClaveLogic();
		palabraClaveLogic.updatePalabraClave(palclaCodigo, palclaDescripcion,
				palclaNombre);
	}

	public static PalabraClave getPalabraClave(Integer palclaCodigo)
			throws Exception {
		IPalabraClaveLogic palabraClaveLogic = new PalabraClaveLogic();
		PalabraClave palabraClave = null;

		try {
			palabraClave = palabraClaveLogic.getPalabraClave(palclaCodigo);
		} catch (Exception e) {
			throw e;
		}

		return palabraClave;
	}

	public static List<PalabraClave> findByCriteriaInPalabraClave(
			Object[] variables, Object[] variablesBetween,
			Object[] variablesBetweenDates) throws Exception {
		IPalabraClaveLogic palabraClaveLogic = new PalabraClaveLogic();

		return palabraClaveLogic.findByCriteria(variables, variablesBetween,
				variablesBetweenDates);
	}

	public static List<PalabraClave> findPagePalabraClave(
			String sortColumnName, boolean sortAscending, int startRow,
			int maxResults) throws Exception {
		IPalabraClaveLogic palabraClaveLogic = new PalabraClaveLogic();

		return palabraClaveLogic.findPagePalabraClave(sortColumnName,
				sortAscending, startRow, maxResults);
	}

	public static Long findTotalNumberPalabraClave() throws Exception {
		IPalabraClaveLogic palabraClaveLogic = new PalabraClaveLogic();

		return palabraClaveLogic.findTotalNumberPalabraClave();
	}

	public static List<Persona> getPersona() throws Exception {
		IPersonaLogic personaLogic = new PersonaLogic();

		return personaLogic.getPersona();
	}

	public static void savePersona(Long perCedula, Integer perCodigo,
			String perContrasena, String perDireccion, String perEmail,
			String perNombre, Long perTelefono, Integer rolCodigo_Rol)
			throws Exception {
		IPersonaLogic personaLogic = new PersonaLogic();
		personaLogic.savePersona(perCedula, perCodigo, perContrasena,
				perDireccion, perEmail, perNombre, perTelefono, rolCodigo_Rol);
	}

	public static void deletePersona(Integer perCodigo) throws Exception {
		IPersonaLogic personaLogic = new PersonaLogic();
		personaLogic.deletePersona(perCodigo);
	}

	public static void updatePersona(Long perCedula, Integer perCodigo,
			String perContrasena, String perDireccion, String perEmail,
			String perNombre, Long perTelefono, Integer rolCodigo_Rol)
			throws Exception {
		IPersonaLogic personaLogic = new PersonaLogic();
		personaLogic.updatePersona(perCedula, perCodigo, perContrasena,
				perDireccion, perEmail, perNombre, perTelefono, rolCodigo_Rol);
	}

	public static List<Persona> FindByPath(String event, String rol)
			throws Exception {
		IPersonaLogic logic = new PersonaLogic();

		return logic.findPath(event, rol);
	}

	public static List<LineaInvestigacion> FindByPathLinea(String event)
			throws Exception {
		ILineaInvestigacionLogic logic = new LineaInvestigacionLogic();

		return logic.findPath(event);
	}

	public static Persona getPersona(Integer perCodigo) throws Exception {
		IPersonaLogic personaLogic = new PersonaLogic();
		Persona persona = null;

		try {
			persona = personaLogic.getPersona(perCodigo);
		} catch (Exception e) {
			throw e;
		}

		return persona;
	}

	public static List<Persona> findByCriteriaInPersona(Object[] variables,
			Object[] variablesBetween, Object[] variablesBetweenDates)
			throws Exception {
		IPersonaLogic personaLogic = new PersonaLogic();

		return personaLogic.findByCriteria(variables, variablesBetween,
				variablesBetweenDates);
	}

	public static List<Persona> findPagePersona(String sortColumnName,
			boolean sortAscending, int startRow, int maxResults)
			throws Exception {
		IPersonaLogic personaLogic = new PersonaLogic();

		return personaLogic.findPagePersona(sortColumnName, sortAscending,
				startRow, maxResults);
	}

	public static Long findTotalNumberPersona() throws Exception {
		IPersonaLogic personaLogic = new PersonaLogic();

		return personaLogic.findTotalNumberPersona();
	}

	public static List<Proyecto> getProyecto() throws Exception {
		IProyectoLogic proyectoLogic = new ProyectoLogic();

		return proyectoLogic.getProyecto();
	}

	public static void saveProyecto(Integer proCodigo, Date proFechafin,
			Date proFechainicio, String proNombre, String proTemaproyecto,
			Integer comCodigo_Comite, Integer estCodigo_Estado,
			Integer fasproCodigo_FaseProyecto,
			Integer tipproCodigo_TipoProyecto, List<PersonaDTO> integrantes,
			List<PersonaDTO> directores) throws Exception {
		IProyectoLogic proyectoLogic = new ProyectoLogic();
		proyectoLogic.saveProyecto(proCodigo, proFechafin, proFechainicio,
				proNombre, proTemaproyecto, comCodigo_Comite, estCodigo_Estado,
				fasproCodigo_FaseProyecto, tipproCodigo_TipoProyecto,
				integrantes, directores);
	}

	public static void saveProyecto2(Integer proCodigo, Date proFechafin,
			Date proFechainicio, String proNombre, String proTemaproyecto,
			List<PersonaDTO> integrantes, List<PersonaDTO> directores,
			Integer estCodigo, Integer faseCodigo, Integer tipo,
			Integer codigo, List<LineaInvestigacionDTO> linea) throws Exception {
		IProyectoLogic proyectoLogic = new ProyectoLogic();
		proyectoLogic.saveProyecto2(proCodigo, proFechafin, proFechainicio,
				proNombre, proTemaproyecto, integrantes, directores, estCodigo,
				faseCodigo, tipo, codigo, linea);
	}

	public static void deleteProyecto(Integer proCodigo) throws Exception {
		IProyectoLogic proyectoLogic = new ProyectoLogic();
		proyectoLogic.deleteProyecto(proCodigo);
	}

	public static void updateProyecto2(Integer proCodigo, Date proFechafin,
			Date proFechainicio, String proNombre, String proTemaproyecto,
			List<PersonaDTO> integrantes, List<PersonaDTO> directores,
			Integer estCodigo, Integer faseCodigo, Integer tipo,
			Integer codigo, List<LineaInvestigacionDTO> linea) throws Exception {
		IProyectoLogic proyectoLogic = new ProyectoLogic();
		proyectoLogic.updateProyecto2(proCodigo, proFechafin, proFechainicio,
				proNombre, proTemaproyecto, integrantes, directores, estCodigo,
				faseCodigo, tipo, codigo, linea);
	}

	public static void updateProyecto(Integer proCodigo, Date proFechafin,
			Date proFechainicio, String proNombre, String proTemaproyecto,
			Integer comCodigo_Comite, Integer estCodigo_Estado,
			Integer fasproCodigo_FaseProyecto, Integer tipproCodigo_TipoProyecto)
			throws Exception {
		IProyectoLogic proyectoLogic = new ProyectoLogic();
		proyectoLogic.updateProyecto(proCodigo, proFechafin, proFechainicio,
				proNombre, proTemaproyecto, comCodigo_Comite, estCodigo_Estado,
				fasproCodigo_FaseProyecto, tipproCodigo_TipoProyecto);
	}

	public static Proyecto getProyecto(Integer proCodigo) throws Exception {
		IProyectoLogic proyectoLogic = new ProyectoLogic();
		Proyecto proyecto = null;

		try {
			proyecto = proyectoLogic.getProyecto(proCodigo);
		} catch (Exception e) {
			throw e;
		}

		return proyecto;
	}

	public static List<Proyecto> findByCriteriaInProyecto(Object[] variables,
			Object[] variablesBetween, Object[] variablesBetweenDates)
			throws Exception {
		IProyectoLogic proyectoLogic = new ProyectoLogic();

		return proyectoLogic.findByCriteria(variables, variablesBetween,
				variablesBetweenDates);
	}

	public static List<Proyecto> findPageProyecto(String sortColumnName,
			boolean sortAscending, int startRow, int maxResults)
			throws Exception {
		IProyectoLogic proyectoLogic = new ProyectoLogic();

		return proyectoLogic.findPageProyecto(sortColumnName, sortAscending,
				startRow, maxResults);
	}

	public static Long findTotalNumberProyecto() throws Exception {
		IProyectoLogic proyectoLogic = new ProyectoLogic();

		return proyectoLogic.findTotalNumberProyecto();
	}

	public static List<ProyectoPersonaRol> getProyectoPersonaRol()
			throws Exception {
		IProyectoPersonaRolLogic proyectoPersonaRolLogic = new ProyectoPersonaRolLogic();

		return proyectoPersonaRolLogic.getProyectoPersonaRol();
	}

	public static void saveProyectoPersonaRol(Integer perCodigo,
			Integer rolCodigo, Integer proCodigo, Integer perCodigo_Persona,
			Integer proCodigo_Proyecto, Integer rolCodigo_Rol) throws Exception {
		IProyectoPersonaRolLogic proyectoPersonaRolLogic = new ProyectoPersonaRolLogic();
		proyectoPersonaRolLogic
				.saveProyectoPersonaRol(perCodigo, rolCodigo, proCodigo,
						perCodigo_Persona, proCodigo_Proyecto, rolCodigo_Rol);
	}

	public static void deleteProyectoPersonaRol(Integer perCodigo,
			Integer rolCodigo, Integer proCodigo) throws Exception {
		IProyectoPersonaRolLogic proyectoPersonaRolLogic = new ProyectoPersonaRolLogic();
		proyectoPersonaRolLogic.deleteProyectoPersonaRol(perCodigo, rolCodigo,
				proCodigo);
	}

	public static void updateProyectoPersonaRol(Integer perCodigo,
			Integer rolCodigo, Integer proCodigo, Integer perCodigo_Persona,
			Integer proCodigo_Proyecto, Integer rolCodigo_Rol) throws Exception {
		IProyectoPersonaRolLogic proyectoPersonaRolLogic = new ProyectoPersonaRolLogic();
		proyectoPersonaRolLogic
				.updateProyectoPersonaRol(perCodigo, rolCodigo, proCodigo,
						perCodigo_Persona, proCodigo_Proyecto, rolCodigo_Rol);
	}

	public static ProyectoPersonaRol getProyectoPersonaRol(
			ProyectoPersonaRolId id) throws Exception {
		IProyectoPersonaRolLogic proyectoPersonaRolLogic = new ProyectoPersonaRolLogic();
		ProyectoPersonaRol proyectoPersonaRol = null;

		try {
			proyectoPersonaRol = proyectoPersonaRolLogic
					.getProyectoPersonaRol(id);
		} catch (Exception e) {
			throw e;
		}

		return proyectoPersonaRol;
	}

	public static List<ProyectoPersonaRol> findByCriteriaInProyectoPersonaRol(
			Object[] variables, Object[] variablesBetween,
			Object[] variablesBetweenDates) throws Exception {
		IProyectoPersonaRolLogic proyectoPersonaRolLogic = new ProyectoPersonaRolLogic();

		return proyectoPersonaRolLogic.findByCriteria(variables,
				variablesBetween, variablesBetweenDates);
	}

	public static List<ProyectoPersonaRol> findPageProyectoPersonaRol(
			String sortColumnName, boolean sortAscending, int startRow,
			int maxResults) throws Exception {
		IProyectoPersonaRolLogic proyectoPersonaRolLogic = new ProyectoPersonaRolLogic();

		return proyectoPersonaRolLogic.findPageProyectoPersonaRol(
				sortColumnName, sortAscending, startRow, maxResults);
	}

	public static Long findTotalNumberProyectoPersonaRol() throws Exception {
		IProyectoPersonaRolLogic proyectoPersonaRolLogic = new ProyectoPersonaRolLogic();

		return proyectoPersonaRolLogic.findTotalNumberProyectoPersonaRol();
	}

	public static List<ReciboProyectoGrado> getReciboProyectoGrado()
			throws Exception {
		IReciboProyectoGradoLogic reciboProyectoGradoLogic = new ReciboProyectoGradoLogic();

		return reciboProyectoGradoLogic.getReciboProyectoGrado();
	}

	public static void saveReciboProyectoGrado(Integer recproCodigo,
			Date recproFecha, Date recproFechacomite, Date recproFechasusten,
			Integer docproCodigo_DocumentosProyecto, Integer proCodigo_Proyecto)
			throws Exception {
		IReciboProyectoGradoLogic reciboProyectoGradoLogic = new ReciboProyectoGradoLogic();
		reciboProyectoGradoLogic.saveReciboProyectoGrado(recproCodigo,
				recproFecha, recproFechacomite, recproFechasusten,
				docproCodigo_DocumentosProyecto, proCodigo_Proyecto);
	}

	public static void deleteReciboProyectoGrado(Integer recproCodigo)
			throws Exception {
		IReciboProyectoGradoLogic reciboProyectoGradoLogic = new ReciboProyectoGradoLogic();
		reciboProyectoGradoLogic.deleteReciboProyectoGrado(recproCodigo);
	}

	public static void updateReciboProyectoGrado(Integer recproCodigo,
			Date recproFecha, Date recproFechacomite, Date recproFechasusten,
			Integer docproCodigo_DocumentosProyecto, Integer proCodigo_Proyecto)
			throws Exception {
		IReciboProyectoGradoLogic reciboProyectoGradoLogic = new ReciboProyectoGradoLogic();
		reciboProyectoGradoLogic.updateReciboProyectoGrado(recproCodigo,
				recproFecha, recproFechacomite, recproFechasusten,
				docproCodigo_DocumentosProyecto, proCodigo_Proyecto);
	}

	public static ReciboProyectoGrado getReciboProyectoGrado(
			Integer recproCodigo) throws Exception {
		IReciboProyectoGradoLogic reciboProyectoGradoLogic = new ReciboProyectoGradoLogic();
		ReciboProyectoGrado reciboProyectoGrado = null;

		try {
			reciboProyectoGrado = reciboProyectoGradoLogic
					.getReciboProyectoGrado(recproCodigo);
		} catch (Exception e) {
			throw e;
		}

		return reciboProyectoGrado;
	}

	public static List<ReciboProyectoGrado> findByCriteriaInReciboProyectoGrado(
			Object[] variables, Object[] variablesBetween,
			Object[] variablesBetweenDates) throws Exception {
		IReciboProyectoGradoLogic reciboProyectoGradoLogic = new ReciboProyectoGradoLogic();

		return reciboProyectoGradoLogic.findByCriteria(variables,
				variablesBetween, variablesBetweenDates);
	}

	public static List<ReciboProyectoGrado> findPageReciboProyectoGrado(
			String sortColumnName, boolean sortAscending, int startRow,
			int maxResults) throws Exception {
		IReciboProyectoGradoLogic reciboProyectoGradoLogic = new ReciboProyectoGradoLogic();

		return reciboProyectoGradoLogic.findPageReciboProyectoGrado(
				sortColumnName, sortAscending, startRow, maxResults);
	}

	public static Long findTotalNumberReciboProyectoGrado() throws Exception {
		IReciboProyectoGradoLogic reciboProyectoGradoLogic = new ReciboProyectoGradoLogic();

		return reciboProyectoGradoLogic.findTotalNumberReciboProyectoGrado();
	}

	public static List<RevisionProyectoGrado> getRevisionProyectoGrado()
			throws Exception {
		IRevisionProyectoGradoLogic revisionProyectoGradoLogic = new RevisionProyectoGradoLogic();

		return revisionProyectoGradoLogic.getRevisionProyectoGrado();
	}

	public static void saveRevisionProyectoGrado(Integer actrevCodigo,
			Date actrevFecha, Date actrevFechasuste,
			String actrevObservaciones,
			Integer docproCodigo_DocumentosProyecto, Integer proCodigo_Proyecto)
			throws Exception {
		IRevisionProyectoGradoLogic revisionProyectoGradoLogic = new RevisionProyectoGradoLogic();
		revisionProyectoGradoLogic.saveRevisionProyectoGrado(actrevCodigo,
				actrevFecha, actrevFechasuste, actrevObservaciones,
				docproCodigo_DocumentosProyecto, proCodigo_Proyecto);
	}

	public static void deleteRevisionProyectoGrado(Integer actrevCodigo)
			throws Exception {
		IRevisionProyectoGradoLogic revisionProyectoGradoLogic = new RevisionProyectoGradoLogic();
		revisionProyectoGradoLogic.deleteRevisionProyectoGrado(actrevCodigo);
	}

	public static void updateRevisionProyectoGrado(Integer actrevCodigo,
			Date actrevFecha, Date actrevFechasuste,
			String actrevObservaciones,
			Integer docproCodigo_DocumentosProyecto, Integer proCodigo_Proyecto)
			throws Exception {
		IRevisionProyectoGradoLogic revisionProyectoGradoLogic = new RevisionProyectoGradoLogic();
		revisionProyectoGradoLogic.updateRevisionProyectoGrado(actrevCodigo,
				actrevFecha, actrevFechasuste, actrevObservaciones,
				docproCodigo_DocumentosProyecto, proCodigo_Proyecto);
	}

	public static RevisionProyectoGrado getRevisionProyectoGrado(
			Integer actrevCodigo) throws Exception {
		IRevisionProyectoGradoLogic revisionProyectoGradoLogic = new RevisionProyectoGradoLogic();
		RevisionProyectoGrado revisionProyectoGrado = null;

		try {
			revisionProyectoGrado = revisionProyectoGradoLogic
					.getRevisionProyectoGrado(actrevCodigo);
		} catch (Exception e) {
			throw e;
		}

		return revisionProyectoGrado;
	}

	public static List<RevisionProyectoGrado> findByCriteriaInRevisionProyectoGrado(
			Object[] variables, Object[] variablesBetween,
			Object[] variablesBetweenDates) throws Exception {
		IRevisionProyectoGradoLogic revisionProyectoGradoLogic = new RevisionProyectoGradoLogic();

		return revisionProyectoGradoLogic.findByCriteria(variables,
				variablesBetween, variablesBetweenDates);
	}

	public static List<RevisionProyectoGrado> findPageRevisionProyectoGrado(
			String sortColumnName, boolean sortAscending, int startRow,
			int maxResults) throws Exception {
		IRevisionProyectoGradoLogic revisionProyectoGradoLogic = new RevisionProyectoGradoLogic();

		return revisionProyectoGradoLogic.findPageRevisionProyectoGrado(
				sortColumnName, sortAscending, startRow, maxResults);
	}

	public static Long findTotalNumberRevisionProyectoGrado() throws Exception {
		IRevisionProyectoGradoLogic revisionProyectoGradoLogic = new RevisionProyectoGradoLogic();

		return revisionProyectoGradoLogic
				.findTotalNumberRevisionProyectoGrado();
	}

	public static List<Rol> getRol() throws Exception {
		IRolLogic rolLogic = new RolLogic();

		return rolLogic.getRol();
	}

	public static void saveRol(Integer rolCodigo, String rolDescripcion,
			String rolNombre) throws Exception {
		IRolLogic rolLogic = new RolLogic();
		rolLogic.saveRol(rolCodigo, rolDescripcion, rolNombre);
	}

	public static void deleteRol(Integer rolCodigo) throws Exception {
		IRolLogic rolLogic = new RolLogic();
		rolLogic.deleteRol(rolCodigo);
	}

	public static void updateRol(Integer rolCodigo, String rolDescripcion,
			String rolNombre) throws Exception {
		IRolLogic rolLogic = new RolLogic();
		rolLogic.updateRol(rolCodigo, rolDescripcion, rolNombre);
	}

	public static Rol getRol(Integer rolCodigo) throws Exception {
		IRolLogic rolLogic = new RolLogic();
		Rol rol = null;

		try {
			rol = rolLogic.getRol(rolCodigo);
		} catch (Exception e) {
			throw e;
		}

		return rol;
	}

	public static List<Rol> findByCriteriaInRol(Object[] variables,
			Object[] variablesBetween, Object[] variablesBetweenDates)
			throws Exception {
		IRolLogic rolLogic = new RolLogic();

		return rolLogic.findByCriteria(variables, variablesBetween,
				variablesBetweenDates);
	}

	public static List<Rol> findPageRol(String sortColumnName,
			boolean sortAscending, int startRow, int maxResults)
			throws Exception {
		IRolLogic rolLogic = new RolLogic();

		return rolLogic.findPageRol(sortColumnName, sortAscending, startRow,
				maxResults);
	}

	public static Long findTotalNumberRol() throws Exception {
		IRolLogic rolLogic = new RolLogic();

		return rolLogic.findTotalNumberRol();
	}

	public static List<TipoDocumento> getTipoDocumento() throws Exception {
		ITipoDocumentoLogic tipoDocumentoLogic = new TipoDocumentoLogic();

		return tipoDocumentoLogic.getTipoDocumento();
	}

	public static void saveTipoDocumento(Integer tipdocCodigo,
			String tipdocDescripcion, String tipdocNombre) throws Exception {
		ITipoDocumentoLogic tipoDocumentoLogic = new TipoDocumentoLogic();
		tipoDocumentoLogic.saveTipoDocumento(tipdocCodigo, tipdocDescripcion,
				tipdocNombre);
	}

	public static void deleteTipoDocumento(Integer tipdocCodigo)
			throws Exception {
		ITipoDocumentoLogic tipoDocumentoLogic = new TipoDocumentoLogic();
		tipoDocumentoLogic.deleteTipoDocumento(tipdocCodigo);
	}

	public static void updateTipoDocumento(Integer tipdocCodigo,
			String tipdocDescripcion, String tipdocNombre) throws Exception {
		ITipoDocumentoLogic tipoDocumentoLogic = new TipoDocumentoLogic();
		tipoDocumentoLogic.updateTipoDocumento(tipdocCodigo, tipdocDescripcion,
				tipdocNombre);
	}

	public static TipoDocumento getTipoDocumento(Integer tipdocCodigo)
			throws Exception {
		ITipoDocumentoLogic tipoDocumentoLogic = new TipoDocumentoLogic();
		TipoDocumento tipoDocumento = null;

		try {
			tipoDocumento = tipoDocumentoLogic.getTipoDocumento(tipdocCodigo);
		} catch (Exception e) {
			throw e;
		}

		return tipoDocumento;
	}

	public static List<TipoDocumento> findByCriteriaInTipoDocumento(
			Object[] variables, Object[] variablesBetween,
			Object[] variablesBetweenDates) throws Exception {
		ITipoDocumentoLogic tipoDocumentoLogic = new TipoDocumentoLogic();

		return tipoDocumentoLogic.findByCriteria(variables, variablesBetween,
				variablesBetweenDates);
	}

	public static List<TipoDocumento> findPageTipoDocumento(
			String sortColumnName, boolean sortAscending, int startRow,
			int maxResults) throws Exception {
		ITipoDocumentoLogic tipoDocumentoLogic = new TipoDocumentoLogic();

		return tipoDocumentoLogic.findPageTipoDocumento(sortColumnName,
				sortAscending, startRow, maxResults);
	}

	public static Long findTotalNumberTipoDocumento() throws Exception {
		ITipoDocumentoLogic tipoDocumentoLogic = new TipoDocumentoLogic();

		return tipoDocumentoLogic.findTotalNumberTipoDocumento();
	}

	public static List<TipoProyecto> getTipoProyecto() throws Exception {
		ITipoProyectoLogic tipoProyectoLogic = new TipoProyectoLogic();

		return tipoProyectoLogic.getTipoProyecto();
	}

	public static void saveTipoProyecto(Integer tipproCodigo,
			String tipproDescripcion, String tipproNombre) throws Exception {
		ITipoProyectoLogic tipoProyectoLogic = new TipoProyectoLogic();
		tipoProyectoLogic.saveTipoProyecto(tipproCodigo, tipproDescripcion,
				tipproNombre);
	}

	public static void deleteTipoProyecto(Integer tipproCodigo)
			throws Exception {
		ITipoProyectoLogic tipoProyectoLogic = new TipoProyectoLogic();
		tipoProyectoLogic.deleteTipoProyecto(tipproCodigo);
	}

	public static void updateTipoProyecto(Integer tipproCodigo,
			String tipproDescripcion, String tipproNombre) throws Exception {
		ITipoProyectoLogic tipoProyectoLogic = new TipoProyectoLogic();
		tipoProyectoLogic.updateTipoProyecto(tipproCodigo, tipproDescripcion,
				tipproNombre);
	}

	public static TipoProyecto getTipoProyecto(Integer tipproCodigo)
			throws Exception {
		ITipoProyectoLogic tipoProyectoLogic = new TipoProyectoLogic();
		TipoProyecto tipoProyecto = null;

		try {
			tipoProyecto = tipoProyectoLogic.getTipoProyecto(tipproCodigo);
		} catch (Exception e) {
			throw e;
		}

		return tipoProyecto;
	}

	public static List<TipoProyecto> findByCriteriaInTipoProyecto(
			Object[] variables, Object[] variablesBetween,
			Object[] variablesBetweenDates) throws Exception {
		ITipoProyectoLogic tipoProyectoLogic = new TipoProyectoLogic();

		return tipoProyectoLogic.findByCriteria(variables, variablesBetween,
				variablesBetweenDates);
	}

	public static List<TipoProyecto> findPageTipoProyecto(
			String sortColumnName, boolean sortAscending, int startRow,
			int maxResults) throws Exception {
		ITipoProyectoLogic tipoProyectoLogic = new TipoProyectoLogic();

		return tipoProyectoLogic.findPageTipoProyecto(sortColumnName,
				sortAscending, startRow, maxResults);
	}

	public static Long findTotalNumberTipoProyecto() throws Exception {
		ITipoProyectoLogic tipoProyectoLogic = new TipoProyectoLogic();

		return tipoProyectoLogic.findTotalNumberTipoProyecto();
	}

	public static List<Persona> getPersonasFromProyecto(Integer rol,
			Integer proCodigo) throws Exception {
		IProyectoLogic tipoProyectoLogic = new ProyectoLogic();

		return tipoProyectoLogic.getPersonasFromProyecto(rol, proCodigo);
	}

	public static List<ProyectoLinea> getProyectoLinea() throws Exception {
		IProyectoLineaLogic proyectoLineaLogic = new ProyectoLineaLogic();

		return proyectoLineaLogic.getProyectoLinea();
	}

	public static void saveProyectoLinea(Integer proCodigo, Integer lininCodigo)
			throws Exception {
		IProyectoLineaLogic proyectoLineaLogic = new ProyectoLineaLogic();
		proyectoLineaLogic.saveProyectoLinea(proCodigo, lininCodigo);
	}

	public static void deleteProyectoLinea(Integer proCodigo,
			Integer lininCodigo) throws Exception {
		IProyectoLineaLogic proyectoLineaLogic = new ProyectoLineaLogic();
		proyectoLineaLogic.deleteProyectoLinea(proCodigo, lininCodigo);
	}

	public static void updateProyectoLinea(Integer proCodigo,
			Integer lininCodigo) throws Exception {
		IProyectoLineaLogic proyectoLineaLogic = new ProyectoLineaLogic();
		proyectoLineaLogic.updateProyectoLinea(proCodigo, lininCodigo);
	}

	public static ProyectoLinea getProyectoLinea(ProyectoLineaId id)
			throws Exception {
		IProyectoLineaLogic proyectoLineaLogic = new ProyectoLineaLogic();
		ProyectoLinea proyectoLinea = null;

		try {
			proyectoLinea = proyectoLineaLogic.getProyectoLinea(id);
		} catch (Exception e) {
			throw e;
		}

		return proyectoLinea;
	}

	public static List<ProyectoLinea> findByCriteriaInProyectoLinea(
			Object[] variables, Object[] variablesBetween,
			Object[] variablesBetweenDates) throws Exception {
		IProyectoLineaLogic proyectoLineaLogic = new ProyectoLineaLogic();

		return proyectoLineaLogic.findByCriteria(variables, variablesBetween,
				variablesBetweenDates);
	}

	public static List<ProyectoLinea> findPageProyectoLinea(
			String sortColumnName, boolean sortAscending, int startRow,
			int maxResults) throws Exception {
		IProyectoLineaLogic proyectoLineaLogic = new ProyectoLineaLogic();

		return proyectoLineaLogic.findPageProyectoLinea(sortColumnName,
				sortAscending, startRow, maxResults);
	}

	public static Long findTotalNumberProyectoLinea() throws Exception {
		IProyectoLineaLogic proyectoLineaLogic = new ProyectoLineaLogic();

		return proyectoLineaLogic.findTotalNumberProyectoLinea();
	}

	public static List<ProyectoPalabraClave> getProyectoPalabraClave()
			throws Exception {
		IProyectoPalabraClaveLogic proyectoPalabraClaveLogic = new ProyectoPalabraClaveLogic();

		return proyectoPalabraClaveLogic.getProyectoPalabraClave();
	}

	public static void saveProyectoPalabraClave(Integer proCodigo,
			Integer palclaCodigo) throws Exception {
		IProyectoPalabraClaveLogic proyectoPalabraClaveLogic = new ProyectoPalabraClaveLogic();
		proyectoPalabraClaveLogic.saveProyectoPalabraClave(proCodigo,
				palclaCodigo);
	}

	public static void deleteProyectoPalabraClave(Integer proCodigo,
			Integer palclaCodigo) throws Exception {
		IProyectoPalabraClaveLogic proyectoPalabraClaveLogic = new ProyectoPalabraClaveLogic();
		proyectoPalabraClaveLogic.deleteProyectoPalabraClave(proCodigo,
				palclaCodigo);
	}

	public static void updateProyectoPalabraClave(Integer proCodigo,
			Integer palclaCodigo) throws Exception {
		IProyectoPalabraClaveLogic proyectoPalabraClaveLogic = new ProyectoPalabraClaveLogic();
		proyectoPalabraClaveLogic.updateProyectoPalabraClave(proCodigo,
				palclaCodigo);
	}

	public static ProyectoPalabraClave getProyectoPalabraClave(
			ProyectoPalabraClaveId id) throws Exception {
		IProyectoPalabraClaveLogic proyectoPalabraClaveLogic = new ProyectoPalabraClaveLogic();
		ProyectoPalabraClave proyectoPalabraClave = null;

		try {
			proyectoPalabraClave = proyectoPalabraClaveLogic
					.getProyectoPalabraClave(id);
		} catch (Exception e) {
			throw e;
		}

		return proyectoPalabraClave;
	}

	public static List<ProyectoPalabraClave> findByCriteriaInProyectoPalabraClave(
			Object[] variables, Object[] variablesBetween,
			Object[] variablesBetweenDates) throws Exception {
		IProyectoPalabraClaveLogic proyectoPalabraClaveLogic = new ProyectoPalabraClaveLogic();

		return proyectoPalabraClaveLogic.findByCriteria(variables,
				variablesBetween, variablesBetweenDates);
	}

	public static List<ProyectoPalabraClave> findPageProyectoPalabraClave(
			String sortColumnName, boolean sortAscending, int startRow,
			int maxResults) throws Exception {
		IProyectoPalabraClaveLogic proyectoPalabraClaveLogic = new ProyectoPalabraClaveLogic();

		return proyectoPalabraClaveLogic.findPageProyectoPalabraClave(
				sortColumnName, sortAscending, startRow, maxResults);
	}

	public static Long findTotalNumberProyectoPalabraClave() throws Exception {
		IProyectoPalabraClaveLogic proyectoPalabraClaveLogic = new ProyectoPalabraClaveLogic();

		return proyectoPalabraClaveLogic.findTotalNumberProyectoPalabraClave();
	}

	public static List<LineaInvestigacion> getProyectoFromLinea(
			Integer proCodigo) throws Exception{
		ILineaInvestigacionLogic iLineaInvestigacionLogic = new LineaInvestigacionLogic();
		return iLineaInvestigacionLogic.getProyectoFromLinea(proCodigo);
	}

	public static List<Proyecto> getAllAntepro() throws Exception{
		IProyectoLogic logic = new ProyectoLogic();
		return logic.getAllAntepro();
	}

	public static List<Proyecto> findProyectos(String string, String consulta) throws Exception {
		IProyectoLogic logic = new ProyectoLogic();
		return logic.findProyecto(string,consulta);
	}

	public static void saveComite(Integer checkInteger, Date checkDate,
			Date checkDate2, List<PersonaDTO> model2) throws Exception {
		IComiteLogic comiteLogic = new ComiteLogic();
		comiteLogic.saveComite(checkInteger, checkDate, checkDate2,model2);
		
	}

	public static List<Persona> getPersonasFromComite(Integer comCodigo) throws Exception{
		IComiteLogic comiteLogic = new ComiteLogic();
		return comiteLogic.getPersonasFromComite(comCodigo);
	}

	public static void updateComite(Integer checkInteger, Date checkDate,
			Date checkDate2, List<PersonaDTO> model2) throws Exception{
		IComiteLogic comiteLogic = new ComiteLogic();
		comiteLogic.updateComite(checkInteger, checkDate, checkDate2,model2);
		
	}

	public static DocumentosProyecto getDocumentosProyectopro(String proCodigo,
			String tipproCodigoTipoProyecto) throws Exception{
		IDocumentosProyectoLogic documentosProyectoLogic = new DocumentosProyectoLogic();
		return documentosProyectoLogic.getDocumentosProyectopro(proCodigo,tipproCodigoTipoProyecto);
	}

	public static void saveAprobacionAnteproyecto(Integer aprantCodigo,
			String aprantEstArte, Date aprantFecha, String aprantMetodo,
			String aprantObjetivos, String aprantObservaciones,
			String aprantReviBibliografia, Integer est_codigo,
			double nota, Integer pro_codigo) throws Exception{
		
		IAprobacionAnteproyectoLogic aprobacionAnteproyectoLogic = new AprobacionAnteproyectoLogic();
		aprobacionAnteproyectoLogic.saveAprobacionAnteproyecto(aprantCodigo,
				aprantEstArte, aprantFecha, aprantMetodo, aprantObjetivos,
				aprantObservaciones, aprantReviBibliografia,
				est_codigo,nota,pro_codigo);
	}

	public static Proyecto getProyectoporNombre(String string) throws Exception{
		IProyectoLogic logic = new ProyectoLogic();
		return logic.getProyectoNombre(string);
	}

	public static List<DocumentosProyecto> getDocumentoProyectoPorProyecto(Integer proCodigo) throws Exception{
		IDocumentosProyectoLogic logic = new DocumentosProyectoLogic();
		return logic.getDocumentoProyectoPorProyecto(proCodigo);
	}

	public static PalabraClave getPalabraClaveNombre(String palclaCodigo) throws Exception{
		IPalabraClaveLogic logic = new PalabraClaveLogic() ;
		return logic.getPalabraClaveNombre(palclaCodigo);
	}

	public static LineaInvestigacion getLineaInvestigacionNombre(
			String lininCodigo) throws Exception{
		ILineaInvestigacionLogic logic = new LineaInvestigacionLogic();
		return logic.getLineaInvestigacionNombre(lininCodigo);
	}

	
}
